<?php

namespace Mogod\Core\Model\Scheme;

/**
 * Схемы моделей
 *
 * @author goorus, morph
 */
class ModelScheme
{

	/**
	 * Обработчик схем моделей
	 *
	 * @var Mogod\Core\Model\Scheme\Worker\ModelSchemeWorkerAbstract
	 */
	protected $worker;

	/**
	 * Возвращает значения свойства поля модели по моделе и поля
	 *
	 * @param string $model Модель
	 * @param string $fieldName Поле модели
	 * @param string $propertyName Название необходимого свойства
	 * @return string
	 */
	public function getFieldProperty($model, $fieldName, $propertyName)
	{
		return $this->worker->getFieldProperty(
			$model, $fieldName, $propertyName
		);
	}

	/**
	 * Возвращает значения свойства модели по моделе, имени поли и свойства
	 *
	 * @param string $model Модель
	 * @param string $propertyName Свойство
	 * @return string
	 */
	public function getModelProperty($model, $propertyName)
	{
		return $this->worker->getModelProperty($model, $propertyName);
	}

	/**
	 * Возвращает обработчика схемы модели
	 *
	 * @return Mogod\Core\Model\Scheme\Worker\ModelSchemeWorkerAbstract
	 */
	public function getWorker()
	{
		return $this->worker;
	}

	/**
	 * Изменяет обрабочик схемы модели
	 *
	 * @param Mogod\Core\Model\Scheme\Worker\ModelSchemeWorkerAbstract $worker
	 */
	public function setWorker($worker)
	{
		$this->worker = $worker;
	}
}
